package com.link.base.wechat.wxtoken.service;

import com.link.base.wechat.wxplatform.model.WxPlatform;
import com.link.base.wechat.wxtoken.model.WxJsTicket;
import com.link.base.wechat.wxtoken.model.WxToken;
import com.link.core.basic.service.BasicService;

/**
 * 微信公众号Token服务
 *
 * @author ouyangzhenqiang
 * @date 2019/02/26 15:36
 */
public interface WxTokenService  extends BasicService<WxPlatform> {
    /**
     * 根据微信公众号应用Id获取公众号信息，并刷新和返回其access_token等信息
     *
     * @author ouyangzhenqiang
     * @date 2019/1/2
     * @param wxAppId 微信公众号应用Id
     */
    WxToken refreshWxTokenByAppId(String wxAppId) throws Exception;

    /**
     * 获取所有公众号信息，并刷新其access_token
     *
     * @author ouyangzhenqiang
     * @date 2019/1/2
     */
    void refreshAllWxToken() throws Exception;

    /**
     * 根据微信公众号应用Id获取access_token
     *
     * @author ouyangzhenqiang
     * @date 2019/1/2
     * @param wxAppId 微信公众号应用Id
     */
    WxToken getWxAccessTokenByAppId(String wxAppId) throws Exception;

    /**
     * 根据微信公众号应用Id获取公众号类别的jsTicket -- type=jsapi
     *
     * @author ouyangzhenqiang
     * @date 2019/1/2
     * @param wxAppId 微信公众号应用Id
     */
    WxJsTicket getWxJsTicketByAppId(String wxAppId) throws Exception;

    /**
     * 根据微信公众号应用Id获取小程序类别的jsTicket -- type=wx_card
     *
     * @author ouyangzhenqiang
     * @date 2019/1/2
     * @param wxAppId 微信公众号应用Id
     */
    WxJsTicket getXcxJsTicketByAppId(String wxAppId) throws Exception;
}
